home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / pluginy Firefox / 51741 / 51741.xpi / chrome / content / lib / hash.js < prev    next >
Text File  |  2010-02-01  |  1KB  |  38 lines

  1. (function()
  2. {
  3.     this.sha256 = function(aString)
  4.     {
  5.         var converter =
  6.           Components.classes["@mozilla.org/intl/scriptableunicodeconverter"].
  7.             createInstance(Components.interfaces.nsIScriptableUnicodeConverter);
  8.         
  9.         // we use UTF-8 here, you can choose other encodings.
  10.         converter.charset = "UTF-8";
  11.         // result is an out parameter,
  12.         // result.value will contain the array length
  13.         var result = {};
  14.         // data is an array of bytes
  15.         var data = converter.convertToByteArray(aString, result);
  16.         var ch = Components.classes["@mozilla.org/security/hash;1"]
  17.                            .createInstance(Components.interfaces.nsICryptoHash);
  18.         ch.init(ch.SHA256);
  19.         ch.update(data, data.length);
  20.         var hash = ch.finish(false);
  21.         
  22.         // return the two-digit hexadecimal code for a byte
  23.         function toHexString(charCode)
  24.         {
  25.           return ("0" + charCode.toString(16)).slice(-2);
  26.         }
  27.         
  28.         // convert the binary hash data to a hex string.
  29.         var s = [toHexString(hash.charCodeAt(i)) for (i in hash)].join("");
  30.         // s now contains your hash in hex: should be
  31.         // 5eb63bbbe01eeed093cb22bb8f5acdc3
  32.         return s;
  33.     }
  34.  
  35.     return null;
  36.  
  37. }).apply(metaTitleDescriptionOnTop);
  38.